import Vue from 'vue'
import VueRouter from 'vue-router'
import store from '@/store'
Vue.use(VueRouter)
// 总结:
// 路由懒加载:为了让第一个页面，加载的app.js小一点，打开网页快一点
// 思路:把组件对应js,分成若干个.js，路由切换到哪个页面，才去加载对应.js文件
// 原因:webpack分析入口时，发现router里上来就import所有页面，所以直接打包进app.js，会导致文件很大
// 解决:当路由路径匹配规则时，才去import引入对应的组件js文件
// 格式:例如:{ path: 'home', component: () => import('@/views/home/index.vue') },
const routes = [
  { path: '/', redirect: '/layout' },
  {
    path: '/login',
    component: () => import('@/login.vue'),
  }, // 登录页面
  {
    path: '/layout',
    component: () => import('@/views/layout/index.vue'),
    redirect: '/layout/home',
    children: [
      {
        path: 'home',
        component: () => import('@/views/home/index.vue'),
        meta: { HomeScroll: 0 }, // 首页滚动的位置
      },
      { path: 'user', component: () => import('@/views/user/index.vue') },
    ],
  },
  { path: '/search', component: () => import('@/views/search/index.vue') }, // 搜索页面
  {
    path: '/search_result/:kw',
    component: () => import('@/views/search/SearchResult.vue'), // 搜索结果页面
  },
  {
    path: '/article_detail',
    component: () => import('@/views/articledetail/index.vue'), // 文章详情页面
  },
  {
    path: '/user_editor',
    component: () => import('@/views/user/UserEditor.vue'), // 用户资料编辑页面
  },
  {
    path: '/chat',
    component: () => import('@/views/user/Chat.vue'), // 小思同学页面
  },
]

const router = new VueRouter({
  routes,
})
// 路由的全局前置守卫
router.beforeEach((to, from, next) => {
  const token = store.state.token
  // 如果已经登录过了，想在网址上跳转到登录页 直接强制跳转到首页
  if (token && to.path === '/login') {
    next('/layout/home')
  } else {
    next()
  }
})
export default router
